package modelo.Orientacion;

public abstract class Direccion {

    protected Direccion(){
    }

    public abstract Posicion devolverSiguientePosicion(Posicion pos);
    /* PreCondicion: la Direccion debe estar creada
       PostCondicion: devuelve la Posicion siguiente a pos*/

    public abstract boolean seLlegaConEstaDireccion(Posicion desde, Posicion hasta);
    /* PreCondicion: la Direccion debe estar creada
       PostCondicion: devuelve true en caso que desde la Posicion desde se llega
       al Posicion hasta en esta direccion, en caso contrio devuelve false*/

    public abstract Direccion devolverDireccionContraria();
    /*PreCondicion: la Direccion debe estar creada
      PostCondicion: devuelve la Direccion contraria*/

    public abstract int devolverElAnguloDeLaDireccion();
    /*PreCondicion: la Direccion debe estar creada
      PostCondicion: devuelve un angulo en grados de la direccion*/
}
